#正常运行
import ast

#print(eval('1+1'))
#安全模式处理方式
#print(ast.literal_eval('1+1'))

#非安全模式，所有信息均可以通过eval暴露出来
print(eval("open(r'/home/SENSETIME/liangchen.vendor/git/liangchen_test/eval和ast.literal_eval/important_file2', 'r').read()"))
#安全模式，所有信息均无法通过literal_eval暴露出来
#print(ast.literal_eval("open(r'/home/SENSETIME/liangchen.vendor/git/liangchen_test/eval和ast.literal_eval/important_file2', 'r').read()"))

#literal_eva会识字符串命令是否危险，如果危险则不做脱掉字符串转换，例如
#a=ast.literal_eval("open(r'/home/SENSETIME/liangchen.vendor/git/liangchen_test/eval和ast.literal_eval/important_file2', 'r').read()")
#print(type(a))

#如果命令不危险，则二者处理方式一样,例如
print(type(eval("[1,2,3,4,5,6]")))
print(type(ast.literal_eval("[1,2,3,4,5,6]")))